package com.example.handheld4_gsignal_app.data.models;

import com.google.gson.annotations.SerializedName;
import java.util.Date;

/**
 * 信号采集数据模型
 */
public class SignalCollectionData {
    @SerializedName("deviceId")
    private String deviceId;
    
    @SerializedName("signalStrength")
    private int signalStrength; // 4G信号强度 (dBm)
    
    @SerializedName("latitude")
    private double latitude; // GPS纬度
    
    @SerializedName("longitude")
    private double longitude; // GPS经度
    
    @SerializedName("altitude")
    private Double altitude; // GPS海拔 (米)
    
    @SerializedName("accuracy")
    private Double accuracy; // GPS精度 (米)
    
    @SerializedName("networkType")
    private String networkType; // 网络类型
    
    @SerializedName("operatorName")
    private String operatorName; // 运营商名称
    
    @SerializedName("cellId")
    private String cellId; // 基站ID
    
    @SerializedName("lac")
    private String lac; // 位置区域码
    
    @SerializedName("mcc")
    private String mcc; // 移动国家码
    
    @SerializedName("mnc")
    private String mnc; // 移动网络码
    
    @SerializedName("rsrp")
    private Integer rsrp; // RSRP值 (dBm)
    
    @SerializedName("rsrq")
    private Double rsrq; // RSRQ值 (dB)
    
    @SerializedName("rssi")
    private Integer rssi; // RSSI值 (dBm)
    
    @SerializedName("snr")
    private Double snr; // 信噪比 (dB)
    
    @SerializedName("collectedAt")
    private Date collectedAt; // 采集时间

    // 构造函数
    public SignalCollectionData() {}

    public SignalCollectionData(String deviceId, int signalStrength, double latitude, 
                               double longitude, Date collectedAt) {
        this.deviceId = deviceId;
        this.signalStrength = signalStrength;
        this.latitude = latitude;
        this.longitude = longitude;
        this.collectedAt = collectedAt;
    }

    // Getter和Setter方法
    public String getDeviceId() { return deviceId; }
    public void setDeviceId(String deviceId) { this.deviceId = deviceId; }

    public int getSignalStrength() { return signalStrength; }
    public void setSignalStrength(int signalStrength) { this.signalStrength = signalStrength; }

    public double getLatitude() { return latitude; }
    public void setLatitude(double latitude) { this.latitude = latitude; }

    public double getLongitude() { return longitude; }
    public void setLongitude(double longitude) { this.longitude = longitude; }

    public Double getAltitude() { return altitude; }
    public void setAltitude(Double altitude) { this.altitude = altitude; }

    public Double getAccuracy() { return accuracy; }
    public void setAccuracy(Double accuracy) { this.accuracy = accuracy; }

    public String getNetworkType() { return networkType; }
    public void setNetworkType(String networkType) { this.networkType = networkType; }

    public String getOperatorName() { return operatorName; }
    public void setOperatorName(String operatorName) { this.operatorName = operatorName; }

    public String getCellId() { return cellId; }
    public void setCellId(String cellId) { this.cellId = cellId; }

    public String getLac() { return lac; }
    public void setLac(String lac) { this.lac = lac; }

    public String getMcc() { return mcc; }
    public void setMcc(String mcc) { this.mcc = mcc; }

    public String getMnc() { return mnc; }
    public void setMnc(String mnc) { this.mnc = mnc; }

    public Integer getRsrp() { return rsrp; }
    public void setRsrp(Integer rsrp) { this.rsrp = rsrp; }

    public Double getRsrq() { return rsrq; }
    public void setRsrq(Double rsrq) { this.rsrq = rsrq; }

    public Integer getRssi() { return rssi; }
    public void setRssi(Integer rssi) { this.rssi = rssi; }

    public Double getSnr() { return snr; }
    public void setSnr(Double snr) { this.snr = snr; }

    public Date getCollectedAt() { return collectedAt; }
    public void setCollectedAt(Date collectedAt) { this.collectedAt = collectedAt; }
}